package ricky.loader.protocol
{
	import flash.display.LoaderInfo;
	import flash.events.Event;
	import flash.events.IOErrorEvent;
	import flash.net.URLLoaderDataFormat;
	import flash.system.ApplicationDomain;
	import flash.system.LoaderContext;
	import flash.utils.ByteArray;
	import flash.utils.Dictionary;
	import flash.utils.Endian;
	
	import ricky.Interface.IDecoder;
	import ricky.Interface.ILoadComplete;
	import ricky.loader.MultipleLoader;
	import ricky.loader.Request;

	/**
	 * 资源解包类
	 */
	public class Decoder
	{
		public function Decoder()
		{
		}
		
		public static function registerDecoder(mul:MultipleLoader):void
		{
			var type:String;
			var normal:DisplayDecoder=new DisplayDecoder();
			
			mul.addProtool("jpg",normal);
			mul.addProtool("png",normal);
			mul.addProtool("gif",normal);
			mul.addProtool("swf",normal);
			
			var da:daDecoder=new daDecoder();
			mul.addProtool("da",da);
			
			var map:MapDecoder=new MapDecoder();
			mul.addProtool("map",map);

		}
		
//		/**
//		 * 开始请求解码
//		 */
//		public static function doDecoder(req:Request,onComplete:ILoadComplete):void
//		{
//			var d:*=req.data;
//			var type:String=req.type.toLocaleLowerCase();
//			if(type=="jpg" || type=="png" || type=="gif" || type=="swf" )
//			{
//				var my:MyLoader=new MyLoader();	
//				my.contentLoaderInfo.addEventListener(Event.COMPLETE,onCompelete);
//				my.req=req;
//				my.loadComplete=onComplete;
//				var loadcon:LoaderContext=new LoaderContext(false,ApplicationDomain.currentDomain,null);//指定域名	
//				my.loadBytes(req.data,loadcon);
//				
//			}else if(type=="da")
//				new DecoderDA(req,onComplete);
//			else if(type=="map")
//				//MapDecoder.doDecoder(req,onComplete);
//			else if( type==URLLoaderDataFormat.BINARY)
//				onComplete.doComplete(req);
//		}
//		
//		
//		/**
//		 * 解码完成
//		 */
//		private static function onCompelete(e:Event):void
//		{
//			var my:MyLoader=(e.currentTarget as LoaderInfo).loader as  MyLoader;
//			var req:Request=my.req;
//			req.data= e.currentTarget.content;
//			my.loadComplete.doComplete(req);
//			
//		}
		
	}
}